定时器是什么?
是什么
定时器是一种异步任务,通常浏览器都有一个独立的定时器模块,定时器的延迟时间就由定时器模块来管理,当某个定时器到了可执行状态,就会被加入主线程队列。
主要由setTimeout()
和 setInterval()
这两个函数来完成
两种定时器区别
相同的是:这两个函数都接受两个参数
- 第一个参数:接受一个回调函数 callback
- 第二个参数:表示推迟执行的毫秒数, time
不同的是:
- setTimeout 表示定时器,在指定毫秒数后执行回调函数,仅执行一次;而 setInterval 表示定时循环器,每间隔指定毫秒数就执行一遍回调函数,若是计时器不被清除,回调函数会执行无数遍
- 清除定时器时,setInterval 对应 clearInterval(),setTimeout 对应 clearTimeout()
定时器的运行机制是什么?
是将指定的代码移出本轮事件循环,等到下一轮事件循环,再检查是否到了指定时间。如果到了,就执行对应的代码;如果不到,就继续等待。